package cn.lg.soar.core.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据验签
 * @author luguoxiang
 * @date 2021/9/28
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface SignatureVerification {

    /**
     * 目标数据 支持spring  el表达式，默认第一个参数
     * @return
     */
    String value() default "";

    /**
     * 签名生成的摘要值存放字段，默认使用@SignValue标注的字段
     * @return
     */
    String signField() default "";

    /**
     * 不参与签名的属性
     * @return
     */
    String[] ignoreFields() default {};

    /**
     * 要参与签名的属性
     * @return
     */
    String[] includeFields() default {};

    /**
     * 签名密钥字段（优先读配置文件）
     * @return
     */
    String secret() default "${lg.mvc.signature-secret:5208f14492eb6b37d14afcd38148cf76}";

}
